package com.example.no1admin.mapper;

import com.example.no1admin.pojo.dto.photographer.PhotographerEditDTO;
import com.example.no1admin.pojo.entity.Photographer;
import com.example.no1admin.pojo.vo.photographer.PhotographerDetailVO;
import com.example.no1admin.pojo.vo.photographer.PhotographerListItemVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface PhotographerMapper {

    /**
     * 添加摄影师
     * @param photographer 摄影师数据
     * @return 受影响的行数，将返回成功删除的数据量
     */
    int insert(Photographer photographer);

    /**
     * 根据摄影师id删除对应的摄影师数据
     * @param id 摄影师id
     * @return 受影响的行数，成功删除数据时，将返回1，如果id对应的数据不存在，则返回0
     */
    int deleteById(Long id);

    /**
     * 根据若干个摄影师id，批量删除摄影师数据
     * @param ids 期望删除的若干个摄影师数据的id
     * @return 受影响的行数，将返回成功删除的数据量
     */
    int deleteByIds(Long... ids);

    /**
     * 根据id修改摄影师数据
     * @param photographer 摄影师数据
     * @return 受影响的行数，当修改成功时，将返回1，如果无此id对应的数据，将返回0
     */
    int updateById(Photographer photographer);

    /**
     * 根据摄影师id查询摄影师详情
     * @param id 摄影师id
     * @return 此摄影师id对应的摄影师数据
     */
    PhotographerDetailVO getById(Long id);

    /**
     * 根据名称统计此名称对应的摄影师数据的数量
     * @param name 摄影师名称
     * @return 此名称对应的摄影师数据的数量
     */
    int countByName(String name);
    /**
     *查询摄影师列表
     * @return 摄影师列表的集合
     */
    List<PhotographerListItemVO> list();
}
